<!DOCTYPE html>
<!DOCTYPE html>
<script src='../resources/testharness.js'></script>
<script src='../resources/testharnessreport.js'></script>
<script src='resources/shadow-dom.js'></script>
<style>
  #host {
    color: red;
  }
  </style>
<div id="host">
  <template data-mode="open">
    <style>
      div {
        color: green;
      }
      div.p1 {
        color: blue;
      }
    </style>
    <div>
      <slot name="s1"></slot>
    </div>
  </template>
  <span id="span0" slot="unassigned"></span>
  <span id="span1" slot="s1"></span>
</div>
<script>
test(() => {
  convertTemplatesToShadowRootsWithin(host);

  assert_equals(getComputedStyle(span0).color, 'rgb(0, 0, 0)',
                'An element which is not assigned to any slot should not inherit a style from the parent.');
  assert_equals(getComputedStyle(host.shadowRoot.querySelector('slot')).color, 'rgb(0, 128, 0)',
                'A slot should inherit style from the parent.');

  assert_equals(getComputedStyle(span1).color, 'rgb(0, 128, 0)',
                'An element which is assigned to a slot should inherit a style from the slot.');
  host.shadowRoot.querySelector('div').className = 'p1';
  assert_equals(getComputedStyle(span1).color, 'rgb(0, 0, 255)',
                'The style change should propagate down to a slotted element.');
}, 'CSS inheritance tests for assigned nodes, not-assigned nodes, and slots');
</script>
